home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Updates / HD-Installer / jst_dev / sources / src / loaders / JSTExeHD / AGA_2C_2Fhd.asm < prev    next >
Assembly Source File  |  2000-04-12  |  2KB  |  94 lines

  1. ; *** OSEmu 512K Hard Disk Loader V1.0
  2. ; *** Written by Jean-François Fabre 1999
  3.  
  4.  
  5.     include    "syslibs.i"
  6.     include    "jst.i"
  7.  
  8.     HD_PARAMS    "",0,0
  9.  
  10. MEM_SIZE = $200000
  11.  
  12. loader:
  13.     move.l    #$200000,D0
  14.     JSRABS    AllocExtMem
  15.     
  16.     ; don't care about success or failure of fastmem allocation
  17.  
  18.     Mac_printf    "Generic 2Meg chip/2Meg fast OSEmu HD Loader"
  19.     Mac_printf    "Coded by Jean-François Fabre © 1999"
  20.  
  21.     JSRABS    UseHarryOSEmu
  22.  
  23.     JSRGEN    GetUserData
  24.     tst.l    (A0)
  25.     beq    UDErr
  26.     move.l    A0,D0
  27.     lea    MAINFILE(pc),A0
  28.     move.l    A0,D1
  29.     JSRGEN    StrcpyAsm
  30.  
  31.     TESTFILE    MAINFILE
  32.     tst.l    d0
  33.     bne    FileErr
  34.  
  35.     JSRABS    LoadFiles
  36.  
  37.     moveq.l    #0,D0
  38.     move.l    #CACRF_CopyBack,D1
  39.     JSRABS    Degrade
  40.  
  41.     GO_SUPERVISOR
  42.     SAVE_OSDATA    MEM_SIZE,#$5D
  43.  
  44.     MOVE.L    $4.W,A6            ;OPEN DOSLIB FOR USE (THE EMU
  45.  
  46.     ; **** boot stuff and patch
  47.  
  48.     MOVE.L    $4.W,A6            ;OPEN DOSLIB FOR USE (THE EMU
  49.     MOVEQ.L    #0,D0            ;PROVIDES THE FUNCTIONS)
  50.     LEA    DOSNAM(PC),A1
  51.     JSRLIB    OpenLibrary(A6)
  52.     LEA.L    DOSP(PC),a4
  53.     MOVE.L    d0,(a4)
  54.     MOVE.L    D0,A6
  55.  
  56.     LEA.L    MAINFILE(PC),A0        ;LOAD MAIN GAME
  57.     MOVE.L    A0,D1
  58.     JSRLIB    LoadSeg
  59.                     ;NO NEED TO STORE POINTER FOR LATER USE
  60.     LSL.L    #2,D0
  61.     MOVE.L    D0,A1
  62.     ADDQ.L    #4,A1
  63.  
  64.     cmp.l    #0,A1
  65.     beq    LoadsegErr
  66.  
  67.     SUB.L    A0,A0
  68.     MOVEQ.L    #0,D0        ; no pointer on argumentline
  69.  
  70.     
  71.     jsr    (A1)
  72.  
  73. LoadsegErr
  74.     JSRGEN    InGameExit
  75. FileErr:
  76.     Mac_printf    "File ",f
  77.     lea    MAINFILE(pc),A1
  78.     JSRABS    Display
  79.     Mac_printf     " missing!"
  80.     JSRABS    CloseAll
  81.  
  82. UDErr:
  83.     Mac_printf    "Executable program name must be passed in USERDATA"
  84.     JSRABS    CloseAll
  85.  
  86. DOSP:
  87.     dc.l    0
  88. DOSNAM:
  89.     dc.b    "dos.library",0
  90. MAINFILE:
  91.     blk.b    256,0
  92.  
  93.  
  94.